#!/bin/sh
#PBS -N my_mpi_job            # 作业名称
#PBS -e test.e                # 错误日志
#PBS -o test.o                # 输出日志
#PBS -l nodes=2:ppn=8         # 申请2个节点，每节点8核（共16核）
#PBS -q workq                 # 指定队列（根据集群调整）

# 切换到提交目录
cd $PBS_O_WORKDIR

# 1. 在所有计算节点创建目录
/usr/local/bin/pssh -h $PBS_NODEFILE mkdir -p /home/${USER} 1>&2

# 2. 将程序和数据文件分发到计算节点
scp master_ubss1:/home/${USER}/ann/main /home/${USER}/ 1>&2
scp -r master_ubss1:/home/${USER}/ann/files/ /home/${USER}/ 1>&2
/usr/local/bin/pscp -h $PBS_NODEFILE /home/${USER}/main /home/${USER}/ 1>&2

# 3. 运行MPI程序（16个进程，因为2节点×8核=16）
mpirun -np 16 -machinefile $PBS_NODEFILE /home/${USER}/main

# 4. 清理临时文件
rm -f /home/${USER}/main
scp -r /home/${USER}/files/ master_ubss1:/home/${USER}/ann/ 2>&1
rm -rf /home/${USER}/files/